﻿using System;
using System.Collections.Generic;
using System.Text;

namespace FastMvc.Crud.Models
{
    /// <summary>
    /// 基础的分页查询类
    /// </summary>
    public class ListPageRequestDto
    {
        public ListPageRequestDto() { }

        private int _pageIndex;

        /// <summary>
        /// 分页数
        /// </summary>
        public int PageIndex { get { return _pageIndex <= 0 ? 1 : _pageIndex; } set { _pageIndex = value; } }

        private int _pageSize;
        /// <summary>
        /// 分页大小
        /// </summary>
        public int PageSize { get { return _pageSize <= 0 ? 10 : (_pageSize > 50 ? 50 : _pageSize); } set { _pageSize = value; } }

        /// <summary>
        /// 排序
        /// * 若需要倒序，则使用-开头 （Sort=-dAddTime : 按照dAddTime倒序）
        /// * 多个排序，使用逗号隔开 （Sort=sId,-dAddTime）
        /// </summary>
        public string Sort { get; set; }

        /// <summary>
        /// 将Sort Sql化
        /// </summary>
        internal string SortSql
        {
            get
            {
                if (string.IsNullOrEmpty(Sort))
                    return "";
                else
                {
                    List<string> sList = new List<string>();
                    var ss = Sort.Split(',');
                    foreach (var s in ss)
                    {
                        if (s.StartsWith("-"))
                        {
                            sList.Add($"`{s.Substring(1)}` desc");
                        }
                        else
                        {
                            sList.Add($"`{s}`");
                        }
                    }
                    return string.Join(",", sList);
                }
            }
        }
    }
}
